var used = [false, false, false];
var arr = [0, 0, 0];

def dfs(var n:Int):Unit {
    if (n == 3) {
        print(arr);
        return unit;
    }

    var i = 0;
    while (i < 3) {
        if (not used[i]) {
            used[i] = true;
            arr[n] = i + 1;
            dfs(n+1);
            used[i] = false;
        }
        i = i + 1;
    }

    return unit;
}

dfs(0);
